* Step 1: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            active(b()) -> mark(a())
            f(mark(X1),X2) -> mark(f(X1,X2))
            f(ok(X1),ok(X2)) -> ok(f(X1,X2))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/2,proper/1,top/1} / {a/0,b/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [0]         
            p(active) = [1] x1 + [9]
                 p(b) = [0]         
                 p(f) = [0]         
              p(mark) = [1] x1 + [0]
                p(ok) = [1] x1 + [0]
            p(proper) = [0]         
               p(top) = [1] x1 + [0]
          
          Following rules are strictly oriented:
          active(b()) = [9]      
                      > [0]      
                      = mark(a())
          
          
          Following rules are (at-least) weakly oriented:
            f(mark(X1),X2) =  [0]           
                           >= [0]           
                           =  mark(f(X1,X2))
          
          f(ok(X1),ok(X2)) =  [0]           
                           >= [0]           
                           =  ok(f(X1,X2))  
          
               proper(a()) =  [0]           
                           >= [0]           
                           =  ok(a())       
          
               proper(b()) =  [0]           
                           >= [0]           
                           =  ok(b())       
          
              top(mark(X)) =  [1] X + [0]   
                           >= [0]           
                           =  top(proper(X))
          
                top(ok(X)) =  [1] X + [0]   
                           >= [1] X + [9]   
                           =  top(active(X))
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 2: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            f(mark(X1),X2) -> mark(f(X1,X2))
            f(ok(X1),ok(X2)) -> ok(f(X1,X2))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Weak TRS:
            active(b()) -> mark(a())
        - Signature:
            {active/1,f/2,proper/1,top/1} / {a/0,b/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [8]          
            p(active) = [8]          
                 p(b) = [0]          
                 p(f) = [9] x1 + [10]
              p(mark) = [1] x1 + [0] 
                p(ok) = [1] x1 + [1] 
            p(proper) = [1] x1 + [9] 
               p(top) = [1] x1 + [0] 
          
          Following rules are strictly oriented:
          f(ok(X1),ok(X2)) = [9] X1 + [19]
                           > [9] X1 + [11]
                           = ok(f(X1,X2)) 
          
               proper(a()) = [17]         
                           > [9]          
                           = ok(a())      
          
               proper(b()) = [9]          
                           > [1]          
                           = ok(b())      
          
          
          Following rules are (at-least) weakly oriented:
             active(b()) =  [8]           
                         >= [8]           
                         =  mark(a())     
          
          f(mark(X1),X2) =  [9] X1 + [10] 
                         >= [9] X1 + [10] 
                         =  mark(f(X1,X2))
          
            top(mark(X)) =  [1] X + [0]   
                         >= [1] X + [9]   
                         =  top(proper(X))
          
              top(ok(X)) =  [1] X + [1]   
                         >= [8]           
                         =  top(active(X))
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 3: MI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            f(mark(X1),X2) -> mark(f(X1,X2))
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Weak TRS:
            active(b()) -> mark(a())
            f(ok(X1),ok(X2)) -> ok(f(X1,X2))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
        - Signature:
            {active/1,f/2,proper/1,top/1} / {a/0,b/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,mark,ok}
    + Applied Processor:
        MI {miKind = MaximalMatrix (UpperTriangular (Multiplicity Nothing)), miDimension = 1, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind MaximalMatrix (UpperTriangular (Multiplicity Nothing)):
        
        The following argument positions are considered usable:
          uargs(mark) = {1},
          uargs(ok) = {1},
          uargs(top) = {1}
        
        Following symbols are considered usable:
          {active,f,proper,top}
        TcT has computed the following interpretation:
               p(a) = [0]                    
          p(active) = [1] x_1 + [0]          
               p(b) = [8]                    
               p(f) = [1] x_1 + [1] x_2 + [8]
            p(mark) = [1] x_1 + [8]          
              p(ok) = [1] x_1 + [0]          
          p(proper) = [1] x_1 + [0]          
             p(top) = [1] x_1 + [4]          
        
        Following rules are strictly oriented:
        top(mark(X)) = [1] X + [12]  
                     > [1] X + [4]   
                     = top(proper(X))
        
        
        Following rules are (at-least) weakly oriented:
             active(b()) =  [8]                   
                         >= [8]                   
                         =  mark(a())             
        
          f(mark(X1),X2) =  [1] X1 + [1] X2 + [16]
                         >= [1] X1 + [1] X2 + [16]
                         =  mark(f(X1,X2))        
        
        f(ok(X1),ok(X2)) =  [1] X1 + [1] X2 + [8] 
                         >= [1] X1 + [1] X2 + [8] 
                         =  ok(f(X1,X2))          
        
             proper(a()) =  [0]                   
                         >= [0]                   
                         =  ok(a())               
        
             proper(b()) =  [8]                   
                         >= [8]                   
                         =  ok(b())               
        
              top(ok(X)) =  [1] X + [4]           
                         >= [1] X + [4]           
                         =  top(active(X))        
        
* Step 4: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            f(mark(X1),X2) -> mark(f(X1,X2))
            top(ok(X)) -> top(active(X))
        - Weak TRS:
            active(b()) -> mark(a())
            f(ok(X1),ok(X2)) -> ok(f(X1,X2))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            top(mark(X)) -> top(proper(X))
        - Signature:
            {active/1,f/2,proper/1,top/1} / {a/0,b/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [9]          
            p(active) = [1] x1 + [0] 
                 p(b) = [12]         
                 p(f) = [1] x1 + [14]
              p(mark) = [1] x1 + [3] 
                p(ok) = [1] x1 + [3] 
            p(proper) = [1] x1 + [3] 
               p(top) = [1] x1 + [0] 
          
          Following rules are strictly oriented:
          top(ok(X)) = [1] X + [3]   
                     > [1] X + [0]   
                     = top(active(X))
          
          
          Following rules are (at-least) weakly oriented:
               active(b()) =  [12]          
                           >= [12]          
                           =  mark(a())     
          
            f(mark(X1),X2) =  [1] X1 + [17] 
                           >= [1] X1 + [17] 
                           =  mark(f(X1,X2))
          
          f(ok(X1),ok(X2)) =  [1] X1 + [17] 
                           >= [1] X1 + [17] 
                           =  ok(f(X1,X2))  
          
               proper(a()) =  [12]          
                           >= [12]          
                           =  ok(a())       
          
               proper(b()) =  [15]          
                           >= [15]          
                           =  ok(b())       
          
              top(mark(X)) =  [1] X + [3]   
                           >= [1] X + [3]   
                           =  top(proper(X))
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 5: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            f(mark(X1),X2) -> mark(f(X1,X2))
        - Weak TRS:
            active(b()) -> mark(a())
            f(ok(X1),ok(X2)) -> ok(f(X1,X2))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/2,proper/1,top/1} / {a/0,b/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [2]                    
            p(active) = [1] x1 + [1]           
                 p(b) = [2]                    
                 p(f) = [12] x1 + [14] x2 + [3]
              p(mark) = [1] x1 + [1]           
                p(ok) = [1] x1 + [1]           
            p(proper) = [1] x1 + [1]           
               p(top) = [1] x1 + [0]           
          
          Following rules are strictly oriented:
          f(mark(X1),X2) = [12] X1 + [14] X2 + [15]
                         > [12] X1 + [14] X2 + [4] 
                         = mark(f(X1,X2))          
          
          
          Following rules are (at-least) weakly oriented:
               active(b()) =  [3]                     
                           >= [3]                     
                           =  mark(a())               
          
          f(ok(X1),ok(X2)) =  [12] X1 + [14] X2 + [29]
                           >= [12] X1 + [14] X2 + [4] 
                           =  ok(f(X1,X2))            
          
               proper(a()) =  [3]                     
                           >= [3]                     
                           =  ok(a())                 
          
               proper(b()) =  [3]                     
                           >= [3]                     
                           =  ok(b())                 
          
              top(mark(X)) =  [1] X + [1]             
                           >= [1] X + [1]             
                           =  top(proper(X))          
          
                top(ok(X)) =  [1] X + [1]             
                           >= [1] X + [1]             
                           =  top(active(X))          
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 6: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            active(b()) -> mark(a())
            f(mark(X1),X2) -> mark(f(X1,X2))
            f(ok(X1),ok(X2)) -> ok(f(X1,X2))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/2,proper/1,top/1} / {a/0,b/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,mark,ok}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^1))